package com.yzy.fly.environment;

import lombok.Data;
import org.springframework.beans.MutablePropertyValues;
import org.springframework.beans.factory.config.BeanDefinition;
import org.springframework.beans.factory.config.ConstructorArgumentValues;

import java.io.Serializable;
@Data
public class BeanDefinitionInfo implements Serializable {

//    String SCOPE_SINGLETON = "singleton";
//    String SCOPE_PROTOTYPE = "prototype";
//    int ROLE_APPLICATION = 0;
//    int ROLE_SUPPORT = 1;
//    int ROLE_INFRASTRUCTURE = 2;
    private String name;
    private String beanName;

    private String type;

    private String parentName;

    private String beanClassName;

    private String scope;

    private Integer autowireMode;

    private Integer dependencyCheck;

    private Boolean isLazyInit;

//    String[] getDependsOn();

    private Boolean isAutowireCandidate;

    private Boolean isPrimary;

    private String factoryBeanName;

    private String factoryMethodName;

    private String initMethodName;

    private String destroyMethodName;
//    ConstructorArgumentValues getConstructorArgumentValues();
//
//    default boolean hasConstructorArgumentValues() {
//        return !this.getConstructorArgumentValues().isEmpty();
//    }

//    MutablePropertyValues getPropertyValues();
//
//    default boolean hasPropertyValues() {
//        return !this.getPropertyValues().isEmpty();
//    }



    private Integer role;

    private String description;

//    ResolvableType getResolvableType();

    private Boolean isSingleton;
    private Boolean isPrototype;
    private Boolean isAbstract;
    private String resourceDescription;

//    BeanDefinition getOriginatingBeanDefinition();

//    Root bean: class [org.springframework.data.redis.core.RedisTemplate];
//    Generic bean: class [org.springframework.boot.autoconfigure.websocket.servlet.WebSocketMessagingAutoConfiguration];

}
